package com.gitee.ywj1352.算法.week02;

public class 求根到叶子节点数字之和 {

    public static int all_sum = 0;


    /**
     * 给定一个二叉树，它的每个结点都存放一个0-9的数字，每条从根到叶子节点的路径都代表一个数字。
     * <p>
     * 例如，从根到叶子节点路径 1->2->3 代表数字 123。
     * <p>
     * 计算从根到叶子节点生成的所有数字之和。
     * <p>
     * 说明:叶子节点是指没有子节点的节点。
     * <p>
     * 来源：力扣（LeetCode）
     * 链接：https://leetcode-cn.com/problems/sum-root-to-leaf-numbers
     * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
     *
     * @param root
     * @return
     */
    public int sumNumbers(TreeNode root) {
        helper(root,"");
        return all_sum;
    }

    public void helper(TreeNode root, String sum) {
        if (root == null) {
            all_sum += Integer.valueOf(sum);
        }
        helper(root.left, sum + root.val);
        helper(root.right, sum + root.val);
    }


}
